# # 获取 计算数据之后  查询数据库  通过调用API等
# # 出现错误之前  程序会抛出一个异常
# # 如果异常不进行处理   程序崩溃了  退出执行
# # try:
#     # 执行的代码  可能出问题
# # except 多种的类型的异常:
#     # 捕获到上述异常 做出的处理

# # 后续代码

# list = [1,2,3,4,5]
# try:
#     print(list[5])
# # except IndexError:
# except Exception:
#     print('超出范围')

# print(111)


class Car():
    # 初始化属性
    def __init__(self, color, price):
        # self 当前创建的对象
        self.color = color
        self.price = price
    # 当对象输出时 调用

    def __str__(self):
        return '这是一辆{}色的汽车'.format(self.color)

    # 析构方法 当对象被销毁时  脚本结束 对象也会被销毁
    def __del__(self):
        print('{}色汽车跑远了,看不见了'.format(self.color))
    # 普通方法

    def run(self):
        return self.color+"色车在跑"


# 实例化
# c1 = Car('red', '50000')
# 属性调用
# print(c1.price)
# 方法调用
# print(c1.run())
# print(c1)

# 继承

class SmallCar(Car):
    # 子类重写  父类方法   覆盖
    def run(self):
        return '{}色的汽车,属于小型车,车速不能超过40km/h'.format(self.color)


class BigCar(Car):
    pass


s1 = SmallCar('blue', '90000')
print(s1.run())
